#!/usr/bin/env python
# --*-- coding:utf-8 --*--
# author:g-y-b time:2020/5/25

from sklearn.datasets import load_iris
import pandas as pd
import matplotlib.pyplot as plt
data = load_iris()
print(dir(data))  # 查看data所具有的属性或方法
# print(data.DESCR)  # 查看数据集的简介

# 直接读到pandas的数据框中
pd.DataFrame(data=data.data, columns=data.feature_names)


plt.style.use('ggplot')

X = data.data  # 只包括样本的特征，150x4
y = data.target  # 样本的类型，[0, 1, 2] 0:setosa 1:versicolor 2:virgincia
features = data.feature_names  # 4个特征的名称
targets = data.target_names  # 3类鸢尾花的名称，跟y中的3个数字对应

print('X:', type(X))
print('X:', X)
print('y:', y)


def showImg(X, y):
    '''
    利用该数据集特征中的前两个，来展示所有的样本点。
    :param X:
    :param y:
    :return:
    '''
    plt.figure(figsize=(10, 4))
    plt.plot(X[:, 0][y == 0], X[:, 1][y == 0], 'bs', label=targets[0])
    plt.plot(X[:, 0][y == 1], X[:, 1][y == 1], 'kx', label=targets[1])
    plt.plot(X[:, 0][y == 2], X[:, 1][y == 2], 'ro', label=targets[2])
    plt.xlabel(features[2])
    plt.ylabel(features[3])
    plt.title('Iris Data Set')
    plt.legend()
    filename = 'Iris Data Set.jpg'
    plt.savefig(filename, dpi=200)
    plt.show()

showImg(X, y)